1. Field of the Invention
The present invention relates to the use of a file management system for storing digitized data as files in a shared file system. In particular, the invention relates to a system and method using files shared by a community of users while providing integrity, security and preventing data corruption.
2. Description of the Related Art Computers have been used to manage business related information for a long time. However, costs associated with storage, communication and information processing prohibited the use of computers to store and manage other kinds of data. When costs came down, it became feasible to digitize and store other forms of data, including digitized data. Digitized data primarily consists of digitized visual images, audio and video, although is not limited to those types of data. Advanced information management system structures are required to store and manage digitized data.
The value of the digitized data is enhanced if it can be shared by multiple users. Use of networks and other distributed systems have made it possible to have seamless and transparent sharing of data across wide geographical areas. However, management of shared data is an issue that has confronted practitioners in this area.
One known way of sharing data among multiple users is by using a shared file system. Data to be shared by two or more users is stored in files which are then available in a transparent mode for access by all users. A conceptual view of a conventional shared file system is shown in FIG. 1. One or more workstations (101, 102, 103) are attached to one or more file servers (110, 111). Each workstation has connected to it its own local storage medium called a "local store" (120, 121, 122). Each file server has a permanent storage medium (130, 131), such as a hard disk, attached to it called a "file server store". The local store stores local files which are accessible only to the workstation connected to it. The file server store stores files that are to be shared by all the users of the system.
An example of the use of a shared file system is a community of artists creating an animation work. Individual artists use workstations for doing their work. Their private files, containing data specific to their individual work, are stored in their local store. Data which is commonly shared by all the artists is stored in the file server store. Individual artists can access common data from the shared file storage and incorporate it into their own work.
In creating animated work several artists work separately and create separate components. For example, one artist might work on animation of human characters while another might work on animation of animals while yet another artist works on the sound, background, etc. Finally, one or more artists combine the separately created components and make further additions to create the final product. A shared file system enables this production methodology by allowing the separate components to be placed on the shared file system. The artist doing the combined work accesses the shared file system and extracts the separate components into the local store of his workstation.
A shared file system provides several advantages for multiple users, such as the users being able to access and refer to each other's data. Different users can also incrementally work on a single application. However, maintaining data integrity in a shared file system has been a problem. When multiple users share a file, the data contained in the shared file is susceptible to inadvertent corruption as well as willful damage. This is particularly acute when all users have write permission. Besides, when multiple users access the file at the same time, each can change the file without knowledge of the others concurrently making changes to the same file.
The utility of a shared file system can be enhanced considerably by integrating it with a file management system. A particularly useful tool is a file management system that is part of an overall distributed computing environment. An important feature of such a file management system is in providing version control.
Version control maintains an older version of a file with either a different name or by employing an extra character in the file name. It also can provide a checking mechanism by which only one user is allowed to "check out" a file at a time. All other users are allowed to access only a read-only copy of the file. The user that has checked out the file conventionally has write permission for the file and is allowed to edit the file and save the edited file under the preexisting file name. After editing the file the user that had checked out the file has to check the file back in. The copy of the file which is checked-in then becomes the latest version of the file.
A distributed computing environment provides a seamless transfer of files to the user. Though the files are stored in various geographical locations, the user is able to access a file as if it is stored locally. The physical transmission of the file from a different location appears transparent to the user,
An example of a distributed system is a conventional client/server system. A conceptual view of a conventional client/server system is shown in FIG. 2 and described in detail in U.S. Pat. No. 5,649,185 granted to Antognini et al. which is incorporated herein by reference. It includes a library server 210, one or more object servers (220, 221), and a library client 230. The library server, the object server and the library client, each have permanent storage media associated with it. That is the library server 210 has a library catalog 240, the object servers include object stores 250, 251, and the library client includes a client cache 260. Also a communication isolator allows the library server and library client to communicate with one another without the need for an application program in the client having to handle complex communication protocols. The library server, object servers and clients are connected by a communication network such as a wide area network or local area network. The library clients are normally implemented on a workstation and the library and object servers are implemented on a host processor which can be a workstation or a main frame computer. Library clients send requests to the library servers to store, retrieve and update objects stored in object servers. They also send requests to query the object indices and descriptive information stored in the library catalog.
Users are granted privileges for the use of the library system services. A user desiring to use the library system conventionally does so via an application program running in the client which sends a request for an item to the library server. The library server checks the library catalog to ensure that the user's name and password are valid and that the user is permitted to secure the desired service.
However, the transfer of files from a different geographical location involves overhead in terms of transmission time and resources. So if a distributed file management system is integrated with a shared file system, files will be transferred back and forth between the distributed system and the shared file system. In the case of digitized audio and video files, where the sizes of those files are extremely large, the transmission cost and times can be prohibitive. Much of the back and forth transmission of files is unnecessary because the users of a preexisting shared file system are often in close geographic proximity.
The users of a shared file system have also been accustomed to using the file system and its interface. Hence, the imposition of a new command language on the user likely would require additional training. Therefore, only essential aspects of a file management system forming part of a distributed computing environment should be incorporated into an existing shared file system.